//
//  ZPUserAccountTools.swift
//  ZPWeibo
//
//  Created by zhangpeng on 16/4/19.
//  Copyright © 2016年 zhangpeng. All rights reserved.
//

import UIKit

class ZPUserAccountTools: NSObject {

    //单例
  static let sharedTools: ZPUserAccountTools = ZPUserAccountTools()
    
    var userAccount: ZPUserAccount?
    
    // 判断我们的用户是否登录
    var isLogin:Bool {
    
        if accessToken != nil{
        
            return true
        }else{
        
            return false
        }
        
    }
    
    var accessToken: String?{
        // 已经保存我们的用户数据了 但是我们的判断我们的访问令牌是否过期
        // 如果没有过期 直接返回
        // 如果过期了 返回 nil
        if userAccount?.access_token != nil{
        
            //没有过期
            if !isExpires{
            
                return userAccount?.access_token
            }else{
             // 过期了
                return nil
            }
            
        }else{
         // 当我们第一次登陆 获取访问令牌的时候 我们是没有保存数据呢 所以我们应该返回一个nil
            return nil
        }
    }
    
    // 判断我们的访问令牌是否过期
    
    var isExpires:Bool{
    
        // 获取我们过期的时间 和当前时间比较
        let date = userAccount?.expires_Date
        // 没有过期
        if date?.compare(NSDate()) == NSComparisonResult.OrderedDescending{
        
            return false
        }else{
        // 已经过期
            return true
        }
    }
    
    let path = (NSSearchPathForDirectoriesInDomains(.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true).last! as NSString).stringByAppendingPathComponent("userAccount.archiver")
    
    override init() {
        super.init()
       // userAccount
    }
    
    //保存数据
    func saveUserAccount(account:ZPUserAccount){
    
        // 当保存数据的时候需要先给我们的userAccount 赋值
        userAccount = account
        
        NSKeyedArchiver.archiveRootObject(account, toFile: path)
    }

    //读取数据
    func getUserAccount() ->ZPUserAccount?{
    
        let result = NSKeyedUnarchiver.unarchiveObjectWithFile(path) as?ZPUserAccount
        
        return result
    }
    
}
